package com.sg.file.receive.provider.util.creator;

import com.sg.file.common.conf.FileSizeTypeConf;
import com.sg.file.receive.api.dto.FileCreateDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.io.File;

/**
 * 文件生成器
 * Created by asus on 2018/7/7.
 */
@Component
public class FileCreator {
    @Autowired
    private FileInfoCreator fileInfoProcess;
    public FileCreateDTO create(String fileId,String proName, String fileContentType, String fileName,Long fileSize){
        return create(fileId,proName,fileContentType, FileSizeTypeConf.BACK_ORIGIN,fileName,fileSize);
    }

    /**
     * 创建文件
     * @param proName 文件所属项目名称
     * @param fileContentType 文件内容类型
     * @param fileType @see FileTypeConf
     * @param fileName 原文件名称
     * @Param fineSize 文件大小
     * @return
     */
    public FileCreateDTO create(String fileId,String proName,String fileContentType,String fileType,String fileName,Long fileSize){
        FileCreateDTO fileCreateDTO = new FileCreateDTO();
        //获取文件信息
        FileCreateDTO fileInfo = fileInfoProcess.getInfo(fileId,proName,fileContentType,fileType,fileName,fileSize);
        //获取文件所在路径
        String filePath = fileInfo.getFilePath().substring(0,fileInfo.getFilePath().lastIndexOf(File.separator));
        File file = new File(filePath);
        //判断是否存在此文件夹
        if(!file.exists()){
            //如果不存在则全路径创建文件夹
            file.mkdirs();
        }
        return fileCreateDTO;
    }
}
